home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************
- * "siidl.h"
- *-------------------------------------------------------------------------
- * Idling library
- * Copyright (c) 1993, TaroPYON
- *************************************************************************/
-
- #ifndef _SIIDL_H
- #define _SIIDL_H
-
- #ifndef _SIDEFS_H
- # include <sidefs.h>
- #endif
-
- typedef struct _idl_t
- {
- struct _idl_t *next, *prev;
- int prio; /* プライオリティ */
- unsigned int att; /* 属性 */
- unsigned int stt; /* ステータス */
- unsigned int clk, lastClk; /* クロック */
- void (*func)(struct _idl_t *idl,int,...);
- void *ptr;
- char name[128]; /* 名前 */
- } IDL_T;
-
- typedef struct /* アイドリング処理構造体 */
- {
- unsigned int stt; /* ステータス */
- int idlNum; /* 登録数 */
- IDL_T *idlTop;
- IDL_T *idlLast;
- } IDLCTRL_T;
-
- extern IDLCTRL_T *SiIdlCt;
-
- /*----------------------------------------------------------------------*/
- #define IDLSTT_OFF (0)
- #define IDLSTT_ON (1)
-
- #define IDLMODE_OPEN (1)
- #define IDLMODE_CLOSE (2)
- #define IDLMODE_START (3)
- #define IDLMODE_STOP (4)
- #define IDLMODE_PAUSE (5)
- #define IDLMODE_CONTINUE (6)
- #define IDLMODE_INT (7)
-
- /*----------------------------------------------------------------------*/
- extern int IDL_init(void);
- extern void IDL_term(void);
- extern IDLCTRL_T *IDL_open(void);
- extern void IDL_close( IDLCTRL_T *idlCt );
- extern int IDL_link( IDLCTRL_T *idlCt, IDL_T *newIdl );
- extern IDL_T *IDL_set( IDLCTRL_T *idlCt, int prio, unsigned int clk, void (*func)(IDL_T *,int,...), void *ptr, CONST char *name );
- extern int IDL_unlink( IDLCTRL_T *idlCt, IDL_T *idl );
- extern int IDL_unset( IDLCTRL_T *idlCt, IDL_T *idl );
- extern int IDL_start( IDL_T *idl );
- extern int IDL_stop( IDL_T *idl );
- extern int IDL_continue( IDL_T *idl );
- extern void IDL_int( IDLCTRL_T *idlCt );
- /*----------------------------------------------------------------------*/
-
- #endif
-